package vue;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Collections;

import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;

import modele.Equipe;

public class PopupGestionEquipe extends JFrame implements ActionListener{
	private final FenetrePrincipale ihm;
	private final JPanel panelGeneral;
	private JButton ajouter;
	private JTextField tfNewEquipe = null;
	
	public PopupGestionEquipe(FenetrePrincipale fenetre) {
		this.ihm = fenetre;
		setTitle("Gestion des équipes");
		setLocation(150, 150);
		setSize(400, 500);
		
		panelGeneral = new JPanel();
		panelGeneral.setLayout(new BoxLayout(panelGeneral, BoxLayout.PAGE_AXIS));
		
		JScrollPane scroll = new JScrollPane(panelGeneral);
		scroll.setPreferredSize(new Dimension(250, 200));
		
		majContenu();
		
		this.add(scroll);
		
		JPanel panelBas = new JPanel(new GridLayout(1,2));
		panelBas.add(new JLabel("Ajouter une Equipe :"));
		
		tfNewEquipe = new JTextField();
		panelBas.add(tfNewEquipe);
		
		ajouter = new JButton("Ajouter");
		ajouter.addActionListener(this);
		panelBas.add(ajouter);
		
		this.add(panelBas, BorderLayout.SOUTH);
		
		setVisible(true);
	}
	
	public void majContenu() {
		panelGeneral.removeAll();
		ArrayList<Equipe> alEq = ihm.getControleur().getEquipes();
		Collections.sort(alEq);
		for(Equipe equipe : alEq) {
			panelGeneral.add(new JLabel(equipe.getNom()));
		}
		panelGeneral.revalidate();
	}

	
	public void actionPerformed(ActionEvent e) {
		if(e.getSource() == ajouter) {
			boolean ajoutOk = ihm.getControleur().ajouterEquipe(tfNewEquipe.getText());
			if(ajoutOk) {
				JOptionPane.showMessageDialog(this, "L'équipe a été ajoutée", "Ajout réussi", JOptionPane.INFORMATION_MESSAGE);
				majContenu();
			} else
				JOptionPane.showMessageDialog(this, "Une équipe possède déjà ce nom", "Ajout impossible", JOptionPane.ERROR_MESSAGE);
		}
	}
}